﻿using System;
using GameEngine.View.Components;
using GameEngine.Model.Data;
using System.Collections.Generic;

namespace GameEditor.View.Components
{
    public class IThingTypeEditorMenuViewConstants
    {
        public enum ButtonTags
        {
           OK,CANCEL
        }
        //public const string SAVEBUTTON = "SAVEBUTTON";
        //public const string EXITBUTTON = "EXITBUTTON";
        //public const string NEWLEVELBUTTON = "NEWLEVELBUTTON";
        //public const string EDITLEVELBUTTON = "EDITLEVELBUTTON";
        //public const string NEWTHINGTYPEBUTTON = "NEWTHINGTYPEBUTTON";
        //public const string EDITTHINGTYPEBUTTON = "EDITTHINGTYPEBUTTON";
        //public const string NEWVIEWBUTTON = "NEWVIEWBUTTON";
        //public const string EDITVIEWBUTTON = "EDITVIEWTYPEBUTTON";
        //public const string NEWRESOURCEBUTTON = "NEWRESOURCEBUTTON";
        //public const string EDITRESOURCEBUTTON = "EDITRESOURCETYPEBUTTON";
    }

    public interface IThingTypeEditorMenuView<ItemVOId> : IMenuView<IThingTypeEditorMenuViewConstants.ButtonTags>
        where ItemVOId : IComparable<ItemVOId>
    {
        //event Action<string> OnCreateClick;
        //event Action<string> OnEditClick;
        //event Action<string> OnRemoveClick;
        //event Action OnNewClick;

        //event Action<string> OnItemTypeClick;

        void AddView(IViewVOId<ItemVOId> id);
        void RemoveView(IViewVOId<ItemVOId> id);
        List<IViewVOId<ItemVOId>> GetViews();
        IViewVOId<ItemVOId> SelectedView { get; }

        void AddType(string id);
        void RemoveType(string id);
        List<string> GetTypes();
        string SelectedType { get; }

        string ThingTypeName { get; set; }

        //void Initialize(MyWorldView worldItemTypeView, MyWorldView worldItemTypeEditor);
    }
}
